// 根据页面链接，渲染对应的页面
export default {
  render(h) {
    // 1. 不考虑路由嵌套
    // const { routerMap, current } = this.$router;
    // const component = routerMap[current] ? routerMap[current].component : null;
    // return h(component);

    // 2. 有路由嵌套
    // 2.1. 标记 router-view 深度
    let depth = 0;
    this.$vnode.data.routerView = true;
    let parent = this.$parent;
    while (parent) {
      const vnodeData = parent.$vnode && parent.$vnode.data;
      if (vnodeData) {
        if (vnodeData.routerView) {
          // 2.2 如果父元素 routerView === true, 深度+1
          depth++;
        }
      }
      parent = parent.$parent;
    }
    // 2.3 匹配对应深度的组件
    let component = null;
    const route = this.$router.matched[depth];
    if (route) {
      component = route.component;
    }
    return h(component);
  },
};
